UNaB
Diplomatura en Análisis de Datos para el Desarrollo de Políticas Públicas
Universidad Nacional Guillermo Brown

Coordinador:
Juan Domingo González

Objetivos Generales

Referidos al propósito de la investigación, los Objetivos Generales son potenciales, puede ser algo muy genérico como “Comprender la problemática del sector X”

Objetivos Específicos

El objetivo específico refleja el resultado esperable en el plazo previsto para la realización del plan. El objetivo general, al cual contribuye el objetivo específico, se orienta hacia resultados posibles de obtener en el largo plazo en la línea de investigación mediante trabajos futuros no incluidos en el plan.

Antecedentes

Indicar el estado de la situación, y en lo posible, trabajos similares en literatura especializada o casos de estudio similares que comparten elementos con el tema planteado.

Actividades y metodología

Indicar si la factibilidad del trabajo propuesto, datos disponibles para hacer los análisis, acceso a software especial de análisis de datos y bibliografía. En este análisis, prestar especial atención al tiempo disponible para realizar el trabajo, teniendo en cuenta que es un plan acotado con fecha final aproximada 31-08-2023. * Repositorio de datos GitHub: https://github.com/DiploDatosUNAB/UNaB-AdDyPP-TFI * Drive: 09-Proyecto Final * Instructivo: Plan de Trabajo - Instructivo.docx * Colab: UNaB - AdDyPP - Trabajo Final Integrador.ipynb

Referencias

Incluir libros, artículos científicos, sitios web, repositorios digitales de datos asociados al plan. En lo posible, hacerlo siguiendo las normas bibliográficas académicas. Por ejemplo https://biblioguias.uma.es/citasybibliografia/ejemplosAPA

0. Acciones Preliminares

Variables de Entorno

# Warnings de Librerías
WARN_ACT <- FALSE
PATH <- "datos/"
PATH2 <- "datos/actividades/"
puntos_arch <- "puntos_digitales.csv"
comprimido <- "departamentos.7z"
departamentos <- "departamentos.json"
indicadores <- "indicadores.shp"

Instalación condicional de librerías

Instala solos si detecta que falta instalarlas.

# instalación condicional de librerías (solo instala si faltan)
# https://stackoverflow.com/questions/66869137/installing-r-packages-in-colab
# https://stackoverflow.com/questions/63594521/install-a-r-package-permanently-in-google-colab
instalar <- function(libreria) {
  if (!requireNamespace(libreria, quietly = TRUE)) {
    install.packages(libreria)
  }
}
instalar("gt")
instalar("gtExtras")
instalar("tmap")
## The legacy packages maptools, rgdal, and rgeos, underpinning this package
## will retire shortly. Please refer to R-spatial evolution reports on
## https://r-spatial.org/r/2023/05/15/evolution4.html for details.
## This package is now running under evolution status 0
instalar("sf")
instalar("leaflet")
instalar("archive")
instalar("ggplot2")

# instalar("Hmisc")
# instalar("purrr")
# instalar("lattice")
# instalar("readr")
# instalar("cluster")
# instalar("dplyr")
# instalar("stats")
# instalar("stringr")
# instalar("corrplot")
# instalar("ergm") para medianas ponderadas. No utilizado
# demora 30-45 segundos
# instalar("psych")
# demora demora 3-8 segundos
# instalar("skimr")
# demora 5-7 minutos
# instalar("caret")

Carga de librerías

# Función de carga condicional de librerías (solo carga si están instaladas)
cargar <- function(libreria, warns = WARN_ACT) {
  if (requireNamespace(libreria, quietly = TRUE)) {
    if(warns) {
      library(libreria, character.only = TRUE)
    } else{
      suppressMessages(library(libreria, character.only = TRUE))
    }
    
  }
}

# carga de librerías a utilizar
cargar("readr")        # lectura de datos
cargar("dplyr")        # manipulación de df
cargar("gt")           # tablas
cargar("gtExtras")     # tablas
cargar("tmap")         # mapas interactivos
cargar("sf")           # datos geoespaciales
cargar("leaflet")      # mapas interactivos
cargar("archive")      # urilidades
cargar("ggplot2")      # graficación

# cargar("lattice")      # graficación estadistica
# cargar("cluster")      # clustering
# cargar("skimr")        # estadísticas
# cargar("stats")        # estadísticas
# cargar("kableExtra") # tablas
# cargar("psych")        # estadísticas
# cargar("purrr")        # manejo de listas
# cargar("IRdisplay")  # display de notebook
# cargar("tidyverse")    # conjunto de paquetes tidy
# cargar("stringr")      # cadenas de caracteres
# cargar("corrplot")     # grafico de correlación
# cargar("Hmisc")        # correlaciones
# cargar("caret")        # entrenamiento
# cargar("ergm")        # análisis estadísticos

1. Tablas

1.1 Puntos Digitales

1.1.1 Listado de Puntos Digitales

El Programa Punto Digital cuenta con dispositivos instalados a lo largo y ancho del territorio argentino. Su objetivo fundamental es la reducción de la brecha digital a los fines de contribuir a la mejora de la calidad de vida de las y los habitantes del país. Esta tabla contiene el listado de los puntos digitales.

# Puntos digitales

puntos <- read.csv(paste0(PATH, puntos_arch), sep = ",", encoding = "ISO-8859-1")

sample_n(puntos, 5) |> 
  dplyr::mutate(horarios = substr(horarios, 1, 20)) |>  # Truncar "horarios"
  gt() |> 
  tab_header(
    title = "Puntos Digitales*",
    subtitle = "* muestra"
  ) |>
  tab_options(table.width = "100%") |>
  opt_stylize(style = 5, color = 'cyan')
Puntos Digitales*
* muestra
id_pd nombre_pd direccion nombre_institucional id_provincia id_departamento id_localidad cod_bahra_localidad id_municipio provincia departamento localidad municipio mail_institucional latitud longitud horarios link_facebook estado
167 Pomán Barrio San Nicolás S/N CIC AR-K 1341 2726 10084070000 CAT019 Catamarca Poman Poman Pomán poman@puntodigital.gob.ar -28.37489 -66.29650 Lunes 08:00 a 12:00 Temporalmente cerrado
745 Itá Ibaté Julio Roca s/n Edificio Municipal AR-W 1412 4492 18063010000 COR025 Corrientes General Paz Ita Ibate Itá Ibaté itaibate@puntodigital.gob.ar -27.42863 -57.34332 Lunes 08:00 a 12:00 Activo
698 San Jerónimo Enrique Niemann 808 ONG AR-S 1700 11389 82070270000 SFE290 Santa Fe Las Colonias San Jeronimo Norte San Jerónimo Norte sanjeronimo@puntodigital.gob.ar -31.54773 -61.08641 Lunes 07:00 a 13:00 Activo
184 Laguna Blanca (Formosa) Rivadavia S/N Biblioteca Popular AR-P 1451 6920 34049020000 FOR017 Formosa Pilcomayo Laguna Blanca Laguna Blanca lagunablanca@puntodigital.gob.ar -25.13342 -58.24470 Lunes 07:00 a 19:00 Activo
1146 Lago Posadas Gendarmería Nacional s/n Ex Escuela Hogar N° 1 Francisco P Moreno AR-Z 1610 10926 78049030000 SCR017 Santa Cruz Rio Chico Hipolito Yrigoyen Lago Posadas (ex Hipólito Yrigoyen) lagoposadas@puntodigital.gob.ar -47.56735 -71.73839 Lunes 09:00 a 13:00 Activo
columnas <- c("id_pd", "nombre_pd", "direccion", "nombre_institucional",
              "id_provincia", "id_departamento", "id_localidad",
              "cod_bahra_localidad", "id_municipio", "provincia",
              "departamento", "localidad", "municipio", "mail_institucional",
              "latitud", "longitud", "horarios", "link_facebook", "estado")

Dimensiones

# dimensiones
cat("El DataFrame tiene", dim(puntos)[1], "observaciones y", dim(puntos)[2], "variables.")
## El DataFrame tiene 664 observaciones y 19 variables.

Medidas de tendencia central - Empleo AMBA

# Descripción de Empleo AMBA sin desagregar
summary(puntos)
##      id_pd         nombre_pd          direccion         nombre_institucional
##  Min.   :  40.0   Length:664         Length:664         Length:664          
##  1st Qu.: 254.8   Class :character   Class :character   Class :character    
##  Median : 515.0   Mode  :character   Mode  :character   Mode  :character    
##  Mean   : 538.6                                                             
##  3rd Qu.: 767.2                                                             
##  Max.   :1289.0                                                             
##                                                                             
##  id_provincia       id_departamento  id_localidad   cod_bahra_localidad
##  Length:664         Min.   :1195    Min.   :    1   Min.   :2.001e+09  
##  Class :character   1st Qu.:1345    1st Qu.: 2613   1st Qu.:1.006e+10  
##  Mode  :character   Median :1451    Median : 6260   Median :3.008e+10  
##                     Mean   :1465    Mean   : 6296   Mean   :3.808e+10  
##                     3rd Qu.:1600    3rd Qu.: 9505   3rd Qu.:6.603e+10  
##                     Max.   :1723    Max.   :13537   Max.   :9.401e+10  
##                                     NA's   :1       NA's   :1          
##  id_municipio        provincia         departamento        localidad        
##  Length:664         Length:664         Length:664         Length:664        
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##   municipio         mail_institucional    latitud          longitud     
##  Length:664         Length:664         Min.   :-54.82   Min.   :-72.34  
##  Class :character   Class :character   1st Qu.:-34.86   1st Qu.:-65.47  
##  Mode  :character   Mode  :character   Median :-32.06   Median :-62.96  
##                                        Mean   :-32.17   Mean   :-62.75  
##                                        3rd Qu.:-27.57   3rd Qu.:-59.10  
##                                        Max.   :-22.10   Max.   :-54.20  
##                                                                         
##    horarios         link_facebook         estado         
##  Length:664         Length:664         Length:664        
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
##                                                          
## 

Mapa

# Geolocalización de Puntos Digitales
# https://rdrr.io/cran/tmap/man/tm_symbols.html
# https://r-tmap.github.io/tmap-book/layers.html

mostrar <- c("id_pd", "nombre_pd", "direccion", "provincia", "departamento",
             "localidad", "municipio", "estado")

# Capas
capas <- c(GrayMap = "Esri.WorldGrayCanvas", StreetMap = "OpenStreetMap", TopoMap = "Esri.WorldTopoMap")

# Geodataframe
puntos_sf <- puntos |> 
  select(2, 1, everything()) |>
  st_as_sf(coords = c("longitud", "latitud"), crs = 4326)
# Gráfico
tmap_mode("view")
## tmap mode set to interactive viewing
tm_basemap(capas) +
  tm_shape(puntos_sf, is.master = TRUE) +
  # tm_markers(size = 0.5, popup.vars = mostrar) +
  tm_dots(size = 0.1,  clustering = T, popup.vars = mostrar) + 
  tm_layout(main.title = "Puntos Digitales", main.title.size = 0.7);

Diccionario

# diccionario de datos

descripciones <- c(
  "Identificador del Punto Digital",
  "Nombre del Punto Digital",
  "Dirección",
  "Nombre Institucional",
  "Identificador de la provincia",
  "Identificador del departamento",
  "Identificador de la localidad",
  "Codigo BAHRA (Asentamientos Urbanos)",
  "Identificador del municipio",
  "Provincia",
  "Departamento",
  "Localidad",
  "Municipio",
  "Mail Institucional",
  "Latitud",
  "Longitud",
  "Horarios",
  "Link Facebook",
  "Estado"
)

diccionario <- data.frame(
  Clase = sapply(puntos, class),
  Descripción = descripciones
)

diccionario <- tibble::rownames_to_column(diccionario, "Variable")

diccionario |>   
  gt(rowname_col = "Variable") |> 
  tab_header(
    title = "Diccionario de Datos",
  ) |>
  tab_options(table.width = "90%") |>
  gt_theme_dot_matrix()
Diccionario de Datos
Clase Descripción
id_pd integer Identificador del Punto Digital
nombre_pd character Nombre del Punto Digital
direccion character Dirección
nombre_institucional character Nombre Institucional
id_provincia character Identificador de la provincia
id_departamento integer Identificador del departamento
id_localidad integer Identificador de la localidad
cod_bahra_localidad numeric Codigo BAHRA (Asentamientos Urbanos)
id_municipio character Identificador del municipio
provincia character Provincia
departamento character Departamento
localidad character Localidad
municipio character Municipio
mail_institucional character Mail Institucional
latitud numeric Latitud
longitud numeric Longitud
horarios character Horarios
link_facebook character Link Facebook
estado character Estado

1.1.2 Indicadores

Se cargan indicadores sobre hogares con celualar y hogares con computadora del Censo 2010.

Carga de Indicadores

indicadores_geo <- sf::st_read(paste0(PATH, indicadores))
## Reading layer `indicadores' from data source 
##   `C:\Users\matar\OneDrive\Documentos\Proyectos\UNaB-AdDyPP-TFI\datos\indicadores.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 525 features and 37 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -73.5708 ymin: -55.05562 xmax: -53.6372 ymax: -21.78078
## Geodetic CRS:  WGS 84
head(indicadores_geo)
## Simple feature collection with 6 features and 37 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -58.46271 ymin: -34.6625 xmax: -58.33514 ymax: -34.56864
## Geodetic CRS:  WGS 84
##    DPTO H_TOTAL H_NBI H_COMPUTAD H_DOMESTIC H_HACINAMI H_HELADERA H_CADENA
## 1 02001   84468 13429      51500        923       2952       6910     4034
## 2 02002   73156  1497      57998       1969        326        515      208
## 3 02003   80489  9560      51631        310       1717       3561      304
## 4 02004   76455  9678      42164        155       2734       3408     3711
## 5 02005   76846  4652      54204        295        822       1527      216
## 6 02006   75189  1656      56637        413        386        570      111
##   H_AGUA_RED H_AGUA_VIV H_CLOACA H_HOYO H_TECHO H_PISO H_CELULAR H_TELEFONO
## 1       1080       4034     1708    944    6765   7980     73457      60208
## 2        197        208      196     62    1358    595     65253      68708
## 3        422        304      291     38    3206   1593     69059      64202
## 4        517       3711     2596   1204   13668   8468     65630      53996
## 5        244        216      280     25    3226   1338     67096      66779
## 6        142        111      180     26    1922    778     66241      69116
##   H_COMBUSTI H_PROPIETA H_INQUILIN H_NI_PROPI H_JEFE_MUJ H_JEFE_LIM H_JEFE_SOL
## 1      10966      41255      35912       7301      37496      13768      25241
## 2        320      42576      23847       6733      35857       2745       8277
## 3       2257      40816      33496       6177      37409       9172      23684
## 4      16059      45852      24093       6510      32436      13702      35900
## 5       1177      44918      26359       5569      34767       5066      19350
## 6        438      49633      20361       5195      32201       3040      14150
##   H_JEFE_S_1 H_JEFE_SEC H_JEFE_TER H_JEFE_UNI H_CONYUGE_ IDPROV
## 1      33437      58270       6008      18825      22787     02
## 2      28360      64631       6437      29834      24366     02
## 3      34840      56173       6499      14834      23478     02
## 4      27277      39453       4581       7595      21912     02
## 5      32406      56998       6945      17647      27154     02
## 6      30743      60650       7601      22306      31675     02
##                              PROV IDDPTO   DPTO_1 DEPARTAMEN DEPARTAM_1
## 1 Ciudad Autónoma de Buenos Aires  02001 Comuna 1     205886      84468
## 2 Ciudad Autónoma de Buenos Aires  02002 Comuna 2     157932      73156
## 3 Ciudad Autónoma de Buenos Aires  02003 Comuna 3     187537      80489
## 4 Ciudad Autónoma de Buenos Aires  02004 Comuna 4     218245      76455
## 5 Ciudad Autónoma de Buenos Aires  02005 Comuna 5     179005      76846
## 6 Ciudad Autónoma de Buenos Aires  02006 Comuna 6     176076      75189
##   DEPARTAM_2 DEPARTAM_3 DEPARTAM_4                       geometry
## 1  -34.60636  -58.37171     17.774 MULTIPOLYGON (((-58.3863 -3...
## 2  -34.58588  -58.39500      6.276 MULTIPOLYGON (((-58.38111 -...
## 3  -34.61383  -58.40269      6.386 MULTIPOLYGON (((-58.41192 -...
## 4  -34.64229  -58.38886     21.694 MULTIPOLYGON (((-58.35525 -...
## 5  -34.61735  -58.42061      6.660 MULTIPOLYGON (((-58.41726 -...
## 6  -34.61683  -58.44360      6.851 MULTIPOLYGON (((-58.4306 -3...

Computadoras

ggplot(indicadores_geo, aes(fill = 100*H_COMPUTAD/H_TOTAL, geometry = geometry)) +
    geom_sf() +
    scale_fill_viridis_c(option = "B", 
                       limits = c(0, 100),
                       direction = -1,
                       name = "Hogares con Computadora",
                       labels = scales::percent_format(scale = 1)
                       ) +
    labs(title = "Hogares con Computadoras")

Celulares

ggplot(indicadores_geo, aes(fill = 100*H_CELULAR/H_TOTAL, geometry = geometry)) +
    geom_sf() +
    scale_fill_viridis_c(option = "B", 
                       limits = c(0, 100),
                       direction = -1,
                       name = "Hogares con Celular",
                       labels = scales::percent_format(scale = 1)
                       ) +
    labs(title = "Hogares con Teléfono Celular")

Polígonos de Departamentos IGN

# Descomprimir el archivo 7-Zip
if (!file.exists(file.path(PATH, departamentos))) {
  archive_extract(paste0(PATH, comprimido), PATH)
}

deptos_geo <- st_read(paste0(PATH, departamentos))
## Reading layer `departamentos' from data source 
##   `C:\Users\matar\OneDrive\Documentos\Proyectos\UNaB-AdDyPP-TFI\datos\departamentos.json' 
##   using driver `GeoJSON'
## Simple feature collection with 529 features and 8 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -74 ymin: -90 xmax: -25 ymax: -21.78086
## Geodetic CRS:  WGS 84
deptos <- as.data.frame(deptos_geo)


sample_n(select(deptos, -geometry), 10) |>
  gt() |>
  tab_header(title = "Departamentos* - GeoDataFrame",
             subtitle = "* muestra"
             ) |>
  tab_options(table.width = "90%") |>
  gt_theme_pff()
Departamentos* - GeoDataFrame
* muestra
gid objeto fna gna nam in1 fdc sag
829 Departamento Partido de Balcarce Partido Balcarce 06063 ARBA - Gerencia de Servicios Catastrales IGN
611 Departamento Departamento Santa María Departamento Santa María 14147 IDE Cordoba IGN
878 Departamento Departamento San Blas de Los Sauces Departamento San Blas de Los Sauces 46119 IGN IGN
1055 Departamento Departamento Tinogasta Departamento Tinogasta 10105 IDE Catamarca IGN
712 Departamento Departamento Los Lagos Departamento Los Lagos 58070 Direc. Pcial. de Catastro e Inf. Territorial IGN
736 Departamento Departamento Belgrano Departamento Belgrano 86042 Catastro Provinciales IGN
585 Departamento Partido de General Pinto Partido General Pinto 06351 ARBA - Gerencia de Servicios Catastrales IGN
737 Departamento Departamento Aguirre Departamento Aguirre 86007 Catastro Provinciales IGN
580 Departamento Departamento Santa Rosa Departamento Santa Rosa 50112 IDE Mendoza IGN
547 Departamento Partido de General Paz Partido General Paz 06343 ARBA - Gerencia de Servicios Catastrales IGN
ggplot() +
    geom_sf(data = subset(deptos_geo, in1!="94028")) + # 92028 antartida
    labs(title = "Partidos de Argentina")

# deptos_centroides <- deptos_geo |> 
# mutate (geometry = st_centroid(geometry))

1.1.3 Actividades

Lista de Actividades de los Puntos Digitales

Carga de Bases Mensuales

lista <- list()
archivos <- list.files(path = PATH2, pattern = "^[0-9]{4}-[0-9]{2}\\.csv")

for (archivo in archivos) {
  df <- read.csv(file.path(PATH2, archivo), sep = ",", encoding = "ISO-8859-1")
  # extrae fecha del n de archivo
  fecha <- strsplit(tools::file_path_sans_ext(archivo), "-", fixed = TRUE)[[1]]
  df <- df |> 
    mutate(anio = as.integer(trimws(fecha[1])),
           mes = as.integer(trimws(fecha[2])))
  lista <- c(lista, list(df))
}

actividades <- bind_rows(lista)

Muestra de Actividades Mensuales

sample_n(actividades, 10) |> 
  gt() |> 
  tab_header(
    title = "Actividades*",
    subtitle = "* muestra"
  ) |>
  tab_options(table.width = "100%") |>
  opt_stylize(style = 5, color = 'cyan')
Actividades*
* muestra
nombre_punto_digital eje eje_id hasta_11 hasta_11_femenino hasta_11_masculino hasta_11_x de_12_a_20 de_12_a_20_femenino de_12_a_20_masculino de_12_a_20_x de_21_a_65 de_21_a_65_femenino de_21_a_65_masculino de_21_a_65_x desde_65 desde_65_femenino desde_65_masculino desde_65_x Totales provincia categoria subcategoria cantidad_actividad anio mes
Bella Vista (Corrientes) Capacitaciones PPD 34 0 NA NA NA 0 NA NA NA 3 NA NA NA 0 NA NA NA 3 Corrientes Vinculación 1 2022 10
Fray Luis Beltrán Salud 19 0 NA NA NA 25 NA NA NA 48 NA NA NA 44 NA NA NA 117 Santa Fe Salud Gestión y prevención COVID 1 2022 12
Lomas de Zamora IV (Villa Fiorito) Formación Laboral 13 0 NA NA NA 0 NA NA NA 0 NA NA NA 0 NA NA NA 0 Buenos Aires Oficios digitales Diseño gráfico 1 2022 12
Nono Cultura y Entretenimiento 31 35 NA NA NA 38 NA NA NA 22 NA NA NA 2 NA NA NA 97 Córdoba Actividad Actividad con uso de consola de videojuegos 1 2022 12
Ciudad de Santa Fe II (Mediateca) Trámites 22 7 NA NA NA 12 NA NA NA 41 NA NA NA 36 NA NA NA 96 Santa Fe Trámites Nacionales ANSES 4 2021 12
La Puerta Formación Laboral 13 0 NA NA NA 45 NA NA NA 112 NA NA NA 1 NA NA NA 158 Córdoba Oficios digitales Impresión y Diseño 3D 3 2022 10
Azul Salud 19 0 NA NA NA 0 NA NA NA 50 NA NA NA 10 NA NA NA 60 Buenos Aires Salud Uso terapéutico del espacio de entretenimiento 1 2020 11
San Javier (Misiones) Ciudadanía y DD 25 0 NA NA NA 0 NA NA NA 5 NA NA NA 0 NA NA NA 5 Misiones Comunidad Otros 1 2022 10
Sauce Viejo Educación 16 28 NA NA NA 8 NA NA NA 21 NA NA NA 0 NA NA NA 57 Santa Fe Complementos de la educación formal Talleres País Digital 3 2021 11
Aristóbulo del Valle Cultura y Entretenimiento 31 89 NA NA NA 149 NA NA NA 115 NA NA NA 0 NA NA NA 353 Misiones Artes Otros 2 2021 11

Matriz de Correlación

Gráfico de Correlación personalizado